home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_07 / greissma / mostream.c < prev    next >
Text File  |  1994-03-09  |  746b  |  34 lines

  1. Listing 5: Mapped object stream operators
  2.  
  3. ostream &operator << ( ostream &o, MappedObject &object )
  4. {
  5.     char buf[ 256 ];
  6.     Map &map = object.map;
  7.  
  8.     o << map.getName() << " ";
  9.  
  10.     for (int i = 0; i < map.getCount(); ++i)
  11.         o << map[ i ].toString( buf, &object ) << " ";
  12.  
  13.     return o;
  14. }
  15.  
  16. istream &operator >> ( istream &i, MappedObject &object )
  17. {
  18.     char buf[ 256 ];
  19.     Map &map = object.map;
  20.  
  21.     i >> buf;
  22.  
  23.     if (strcmp( buf, map.getName() )) {
  24.         printf( "Cannot convert <%s> to <%s> in operator >>\n",
  25.                  buf, map.getName() );
  26.         exit( -1 );
  27.     }
  28.  
  29.     for (int k = 0; k < map.getCount(); ++k)
  30.         i >> buf, map[ k ].fromString( &object, buf );
  31.  
  32.     return i;
  33. }
  34.